package com.AdvancedDemos.继承;

public class 关键字super与this新用途 {
    public static void main(String[] args) {

        B1 b1 = new B1();
        b1.run();
    }
}

class A1 {
    String a1;

    public A1() {

    }

    public A1(String a1) {
        this.a1 = a1;
    }

    void run() {
        System.out.println("A1 is running");
    }
}

class B1 extends A1 {
    String b1;

    public B1(String b1) {
        this("默认赋值给a1", b1);//可以使用this()来调用本类中的其他兄弟构造函数
    }

    public B1() {
        //会默认自动在子类构造函数第一行添加super();先调用父类无参构造函数
    }

    public B1(String a1, String b1) {
        super(a1);//也可以手动写明,来调用父类有参构造函数/无参构造函数
        this.b1 = b1;
    }


    @Override
    void run() {
        System.out.println("B1 is running");
        super.run();
    }//run方法重写了A1中的run,如果要在B1类中调用A1中的run,需要使用super.run();
}
